웹 개발
웹보안도구_01_0room 구축 계획
작성자 : Heehyeon Yoo|2025-12-01
# Blog# Security# Flask# Project# Plan
파이썬 공부용 웹보안도구 개발
파이썬을 공부하는데, 무언가를 만들면서 배우는게 가장 좋다고 생각이 들었다.
그래서 간단한 웹보안도구를 만들기로 했다.
목표는 단순하다. 공부에 목적이 있는 만큼 복잡한 전문 도구 대신, 빠르게 확인할 수 있는 최소 기능을 제공하는 것.
그리고 그 과정에서 내가 보안 지식을 웹 서비스로 구현할 수 있음을 보여주는 것.
구축 범위 (MVP)
처음부터 욕심내지 않기로 했다.
MVP는 다음 두 기능만 확실히 완성하는 것으로 잡는다.
-
암호 보안 수준 검사기
- 입력 즉시 강도를 확인할 수 있어야 한다.
- 한국어 피드백과 시각적 표현(색/게이지)을 제공한다.
- 길이 제한과 입력 검증은 기본으로 포함한다.
-
안심 링크(URL 확장기)
- 단축 URL을 끝까지 추적해 최종 목적지 표시
- 의심 키워드/패턴 검사로 기본 위험도 평가
- 연결 실패에도 “분석 결과”는 제공
PRD 요약
목표
- Flask 기반 웹 보안 도구 모음 구축
- 입문자도 사용할 수 있는 간단한 UX
- 보안 기본기(입력 검증/예외 처리)를 갖춘 서비스
대상 사용자
- 일반 사용자: 의심 링크나 비밀번호를 빠르게 확인하고 싶은 사람
- 보안/개발 입문자: 복잡한 툴 없이 웹에서 테스트하고 싶은 사람
핵심 기능
- F-01 암호 보안 수준 검사기
- F-02 안심 링크(URL 확장기)
완료 기준
- MVP 2기능 정상 동작
- 기본 UI/UX 흐름 완성
- 예외 처리/문서화 완료
구현 로드맵
계획은 단계를 나누어 진행한다.
Phase 1 (MVP)
- Flask 기반 기본 UI/라우팅 구축
- 두 기능(암호 검사, URL 확장) 구현
- 입력 검증 및 오류 메시지 정리
Phase 2
- 해시 생성기
- 보안 헤더 스캐너
Phase 3
- EXIF 뷰어
- VirusTotal 연동(안심 링크 2차 검증)
Phase 4
- 사용자 대시보드(검사 이력)
- REST API 공개
처음부터 모든 기능을 붙이기보다, 작동하는 최소 단위부터 확장한다.
기술 구조
- Backend: Python + Flask
- Frontend: HTML/CSS + Jinja2 템플릿
- 핵심 로직: requests, 정규표현식, 피싱 도메인 DB 대조
그리고 보안 도구답게, 최소한의 안전 장치는 반드시 포함한다.
- 입력값 검증 (화이트리스트)
- XSS 방어 (템플릿 자동 이스케이프)
- 민감 정보는
.env로 분리
결론
이 프로젝트는 학습용으로, 기능 욕심을 줄이고, 정확한 문제 해결에 집중하는 것이 핵심이다.
MVP를 빠르게 완성하고, 데이터/피드백 기반으로 확장한다.